class Solution {
public:
    int monotoneIncreasingDigits(int n) {
        string s = to_string(n);
        int flag = s.size();
        // 从后往前遍历
        // 因为求的是小于等于n的最大数字，且每位数都是单独递增
        // 比如n = 323，返回299
        //     n = 332，返回299
        
        for(int i = s.size() - 1; i > 0; i--)
        {
            if(s[i - 1] > s[i])
            {
                s[i - 1]--;
                flag = i;   // 表示flag及之后的数都变成9
            }
        }

        for(int i = flag; i < s.size(); i++)
            s[i] = '9';
        return stoi(s);
    }
};